Enterprises have grown increasingly reliant on computing systems to accomplish mission-critical tasks. Such computing systems are becoming increasingly complicated and operate a heterogeneous mix of application servers and input/output (I/O) subsystems. To reduce cost and increase flexibility for application servers to access available I/O subsystems, virtual I/O servers can be used to create logical separations between the application servers and I/O subsystems to make the I/O subsystems as logical resource units to application servers.
While the move to virtual I/O servers increases flexibility, it also increases the complexity of management. The virtual I/O servers must be scalable to handle a large number of application servers with wide range of quality of service (QoS) requirements. Virtual I/O communications from application servers such as file transfers are high-bandwidth, latency-tolerant, and well-structured, while virtual I/O communications for Internet Protocol (IP) telephony application servers are low-bandwidth, low-latency, and bursty. Therefore, virtual I/O servers should provide the appropriate QoS granularity to meet the end-to-end QoS requirement of individual application servers. As the ratio of application servers to I/O subsystems increases, access contention, bandwidth constraint, and other issues developed.
Aggravating the complexity of managing virtual I/O servers is the assortment of attached I/O subsystems. I/O subsystems have different capacity and traffic characteristics. I/O subsystems devices such as fibre channel storage devices operate in a coordinated data transfer manner with defined data transfer size. In the other hand, I/O subsystems such as a local area network (LAN) network interface card (NIC) tends to have bursty traffic and randomized data size. To provide end-to-end QoS guarantees, virtual I/O servers not only need to estimate the workloads, configuring, sizing, and balancing of the diverse application servers, but also the assortment of I/O subsystems, to achieve optimal performance.